Skip to content

[16.0][IMP] shopfloor: cluster picking, option to force the scan of product, lot or package - #1247

Merged
OCA-git-bot merged 2 commits into
OCA:16.0from
acsone:16.0-imp-shopfloor-cluster-picking-disable-location-based-move-selection
Sep 14, 2026
Merged

OCA-git-bot merged 2 commits into
OCA:16.0from
acsone:16.0-imp-shopfloor-cluster-picking-disable-location-based-move-selection

Conversation

@nicolas-delbovier-acsone

@nicolas-delbovier-acsone nicolas-delbovier-acsone commented Aug 25, 2026

Copy link
Copy Markdown

Problem / Business Need

In standard cluster picking operations, scanning a location barcode infers and validates/selects the move planned at that location.

However, in real-world warehouse environments, stock discrepancies frequently occur (e.g., an operator physically placed Lot B at a bin while Odoo expects Lot A, or misidentified products are stored in the location). When location scanning auto-selects the move, operators unknowingly validate incorrect physical movements without realizing a mismatch exists between physical stock and Odoo's inventory state.

To enforce strict inventory control and force immediate discrepancy detection, warehouse managers need a way to require operators to explicitly scan the product, lot, or package barcode rather than relying on location inference.

cc @jbaudoux

@OCA-git-bot

Copy link
Copy Markdown
Contributor

Hi @guewen, @simahawk, @sebalix,
some modules you are maintaining are being modified, check this out!

@jbaudoux jbaudoux left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think bypassing the confirmation of the location is a good idea. Why not just enabling the existing option scan location first? You should then have to still scan the product. Needs testing it works properly in this scenario with qty prefill, but the purpose was this one.

@nicolas-delbovier-acsone

Copy link
Copy Markdown
Author

I don't think bypassing the confirmation of the location is a good idea. Why not just enabling the existing option scan location first? You should then have to still scan the product. Needs testing it works properly in this scenario with qty prefill, but the purpose was this one.

The problem is that, here, we want to completely forbid the scan of a location, not force it to be the first thing to scan.

When I tested the option you mentioned, I could end up validating lines having only scanned the location (in case there is no ambiguity for the system -> e.g. only one lot in the location). This is not something I want to be possible.

We want to strictly enforce scanning a unique identifier (such as a lot or packaging) to prevent picking errors. In practice, if scanning just the location is allowed, operators quickly default to scanning the bin and grabbing whichever box is physically closest. If that box doesn't match the specific lot Odoo assigned, the wrong item gets picked without anyone noticing, leading to inventory mismatches between Odoo and reality.

@jbaudoux

jbaudoux commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

@nicolas-delbovier-acsone

When I tested the option you mentioned, I could end up validating lines having only scanned the location (in case there is no ambiguity for the system -> e.g. only one lot in the location). This is not something I want to be possible.

Like I said, there could be a bug when used in combination with prefill. Also that option was put in place for a customer using other picking scenario (e.g. zone picking), not this one. So there is less feedback.

Nevertheless, the purpose of the option is to force scanning the location and then the product/lot, so that there is no doubt because a same product can be at multiple locations.

The problem is that, here, we want to completely forbid the scan of a location, not force it to be the first thing to scan.

So compared to your intention you will still have to scan first the location but I don't think you will slow down the user. Both labels are just in front of him. However everything will be confirmed.

@nicolas-delbovier-acsone
nicolas-delbovier-acsone force-pushed the 16.0-imp-shopfloor-cluster-picking-disable-location-based-move-selection branch from b495942 to 931e1a0 Compare September 3, 2026 12:53
@nicolas-delbovier-acsone nicolas-delbovier-acsone changed the title [16.0][IMP] shopfloor: cluster picking, option to disable location-based move selection [16.0][IMP] shopfloor: cluster picking, option to force to scan more than the location Sep 3, 2026
@nicolas-delbovier-acsone nicolas-delbovier-acsone changed the title [16.0][IMP] shopfloor: cluster picking, option to force to scan more than the location [16.0][IMP] shopfloor: cluster picking, option to force the scan of product, lot or package Sep 3, 2026
@nicolas-delbovier-acsone

nicolas-delbovier-acsone commented Sep 3, 2026

Copy link
Copy Markdown
Author

For the record, we've been discussing with @jbaudoux and we realised that it was indeed possible to select a move line by scanning only the location (even with "scan location first" activated).

The PR has been refactored in order to switch the mentality from "prevent location scan" to "force more detailed scan" (now you can scan a location but it will never allow you to validate the move line having only scanned the location).

@nicolas-delbovier-acsone
nicolas-delbovier-acsone force-pushed the 16.0-imp-shopfloor-cluster-picking-disable-location-based-move-selection branch 2 times, most recently from 7cfab08 to 36646a5 Compare September 3, 2026 13:18
@OCA-git-bot OCA-git-bot added the mod:shopfloor_mobile Module shopfloor_mobile label Sep 3, 2026
@jbaudoux

Copy link
Copy Markdown
Contributor

/ocabot merge minor

@OCA-git-bot

Copy link
Copy Markdown
Contributor

What a great day to merge this nice PR. Let's do it!
Prepared branch 16.0-ocabot-merge-pr-1247-by-jbaudoux-bump-minor, awaiting test results.

@jbaudoux

Copy link
Copy Markdown
Contributor

Oups, we are already in version 16.0.2.26.6. And this has a migration script for 16.0.2.26.0.
@nicolas-delbovier-acsone Can you make a quick patch to move the migration script to 16.0.2.27.1 and set the version in the __manifest__ ?

@nicolas-delbovier-acsone
nicolas-delbovier-acsone force-pushed the 16.0-imp-shopfloor-cluster-picking-disable-location-based-move-selection branch from b36a3a9 to 4db00c2 Compare September 14, 2026 11:45
@OCA-git-bot

Copy link
Copy Markdown
Contributor

This PR has the approved label and has been created more than 5 days ago. It should therefore be ready to merge by a maintainer (or a PSC member if the concerned addon has no declared maintainer). 🤖

1 similar comment
@OCA-git-bot

Copy link
Copy Markdown
Contributor

This PR has the approved label and has been created more than 5 days ago. It should therefore be ready to merge by a maintainer (or a PSC member if the concerned addon has no declared maintainer). 🤖

@OCA-git-bot

Copy link
Copy Markdown
Contributor

@jbaudoux The merge process could not be finalized, because command git merge tmp-pr-1247 failed with output:

Auto-merging shopfloor/__manifest__.py
CONFLICT (content): Merge conflict in shopfloor/__manifest__.py
Auto-merging shopfloor/static/description/index.html
Automatic merge failed; fix conflicts and then commit the result.

@jbaudoux

Copy link
Copy Markdown
Contributor

@nicolas-delbovier-acsone Ah you blocked the ongoing merging by force pushing just on time :) Then now you need to rebase and ideally set version 16.0.2.27.0. Then it will be good :)

Add the `force_detailed_scan` scenario option and menu setting to prevent
automatic line completion when a location is scanned during cluster picking.

When `force_detailed_scan` is enabled, scanning the location returns the
user to the start line state instead of automatically advancing to the
destination scan state. This forces the operator to explicitly scan the
product, lot/serial, or package barcode to validate the move line, preventing
inventory drift when physical stock at the location differs from system
expectations.
@nicolas-delbovier-acsone
nicolas-delbovier-acsone force-pushed the 16.0-imp-shopfloor-cluster-picking-disable-location-based-move-selection branch from 4db00c2 to fea06ae Compare September 14, 2026 13:00
@jbaudoux

Copy link
Copy Markdown
Contributor

@nicolas-delbovier-acsone nearly :) You also need to rename the migration directory with right version number

@jbaudoux

Copy link
Copy Markdown
Contributor

That cmd will increase the version of the manifest to match the version of the migration

/ocabot merge patch

@OCA-git-bot

Copy link
Copy Markdown
Contributor

What a great day to merge this nice PR. Let's do it!
Prepared branch 16.0-ocabot-merge-pr-1247-by-jbaudoux-bump-patch, awaiting test results.

@OCA-git-bot
OCA-git-bot merged commit 93ed959 into OCA:16.0 Sep 14, 2026
6 of 7 checks passed
@OCA-git-bot

Copy link
Copy Markdown
Contributor

Congratulations, your PR was merged at dc3ddb0. Thanks a lot for contributing to OCA. ❤️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants